package org.bee;

import org.bee.enums.IEnum;

import java.util.Arrays;

/**
 * 根据码值获得对应枚举类的描述
 */
public class EnumUtils {
    /**
     * 根据 code 获取描述信息
     *
     * @param enumClass 枚举类类型
     * @param code      code值
     * @return 描述信息
     */
    public static String code2Desc(Class<? extends IEnum> enumClass, Object code) {
        return Arrays.stream(enumClass.getEnumConstants())
                .filter(e -> {
                    // 支持 Integer、Boolean、String 等类型自动转换为 String 比较
                    return e.getCode().equals(String.valueOf(code));
                })
                .map(IEnum::getDesc)
                .findFirst()
                .orElse(null);
    }
}
